Zum Hauptinhalt springen

Virtuelles Kraftwerk

tipp

Das VPP-Protokoll basiert auf dem Live-MQTT-Protokoll. Bitte beziehen Sie sich auf diese Seite vorher. Siehe Live MQTT Control.

tipp

Die erste VPP-Einrichtung MUSS von Eniris durchgeführt werden. Bitte kontaktieren Sie Eniris bevor Sie mit den nächsten Schritten fortfahren.

Verbindung zum MQTT-Broker

Bitte beziehen Sie sich auf den folgenden Abschnitt, um herauszufinden, wie Sie sich mit dem Eniris MQTT-Broker verbinden: MQTT Broker Connection

VPP-Funktionalität

Das VPP ist so konzipiert, dass es pro Gerätegruppe (z.B. Solar, Speicherung) einen Satz von Sollwerten/Strategien empfängt und die Sollwerte zwischen den mit dem VPP verbundenen Controllern aggregiert.

Während das Live-MQTT-Protokoll einen Befehl an einen einzelnen Controller senden würde, ermöglicht das VPP dem Benutzer, einen Befehl an eine Gruppe von Controllern zu senden.

Bild 1

Hinzufügen von Controllern zum VPP

Bild 1
Bild 1
Bild 1
Bild 1

Beim Hinzufügen des Eniris MQTT-Signals wird ein Feld VPP ID angezeigt. Geben Sie die hier erhaltene VPP ID ein.

VPP ID eingeben
Bild 1

Aggregationsalgorithmus

Die Sollwerte werden basierend auf der Kapazität der Geräte aggregiert, die unter den einzelnen Controllern fallen.

MQTT-Themen

Sobald die erste Einrichtung abgeschlossen ist, werden eine VPP ID und ein MQTT-Benutzername (und Passwort) bereitgestellt.

Eingehendes Thema

Thema: vpp/{MQTT Benutzername}/{VPP ID}

Dieses Thema wird vom Benutzer verwendet, um einen aggregierten Befehl an das VPP zu senden.

Body:

{
"msg_id": <inkrementelle Nachrichten-ID>(int),
"vpp_id": <VPP ID>(str),
"time": "<Unix-Zeitstempel>(int)",
"fields": {
"<Komponentenrichtlinie>": "<Richtlinientyp>",
"<Komponentenleistungssollwert>": <Sollwert in Watt>
}
}

Die Komponentenrichtlinien und Sollwerte finden Sie hier: MQTT Komponenten und Richtlinien

Bestätigungsthema

Thema: vpp/{MQTT Benutzername}/{VPP ID}/acknowledgement

Nachdem ein Befehl gesendet wurde, wird das VPP mit einer Bestätigung antworten, die angibt, ob der Befehl erfolgreich empfangen wurde oder nicht.

Body:

{
"payload": {
"fields": {
"responseCode": <Erfolgs-/Fehlercode>(int),
"ack": <Bestätigungsnachricht>(str)
},
"target": <VPP ID>(str)
},
"message_type": <Art der Nachricht>(str)
}

Rückmeldethema

Thema: vpp/{MQTT Benutzername}/{VPP ID}/feedback

Das Rückmeldethema enthält das Feedback, das von den einzelnen Controllern zurückgegeben wird.

Body:

{
"payload": {
"updated_on": <Unix-Zeitstempel der Daten>(str),
"feedback_dict": {
<Feedback-Dikt>(dict)
},
"target": <Standort-Knoten-ID>(str)
},
"message_type": <Art der Nachricht>(str)
}

Die Struktur des Feedback-Dikts ist hier zu finden: MQTT Feedback Payload Structure

Aggregiertes Rückmeldethema

Thema: vpp/{MQTT Benutzername}/{VPP ID}/aggregated_feedback

Das VPP aggregiert das Feedback, das von jedem einzelnen Controller empfangen wird.

Body:

{
"payload": {
"updated_on": <Unix-Zeitstempel der Daten>(str),
"feedback_dict": {
<Aggregiertes Feedback-Dikt>(dict)
}
},
"message_type": <Art der Nachricht>(str)
}

Das aggregierte Feedback-Wörterbuch ist ähnlich strukturiert wie die MQTT Feedback Payload Structure. Allerdings können Stringwerte, wie ausgeführte Strategien, nicht aggregiert werden und sind daher nicht enthalten.

Versendete Befehle Thema

Thema: vpp/{MQTT Benutzername}/{VPP ID}/dispatched_commands

Wenn Befehle von dem VPP an die Controller gesendet werden, wird dies über dieses Thema gemeldet.

Body:

{
"payload": {
"aggregated": {
<Komponentenname>(str): <CommandPower Wert>(float)...
},
"dispatched_commands": [
<Liste der einzelnen Befehle, die an die Controller gesendet wurden>
]
},
"message_type": <Art der Nachricht>(str)
}

Die Payload-Struktur der einzelnen gesendeten Befehle finden Sie hier: MQTT Feedback Payload Structure.

Warnung Thema

Thema: vpp/{MQTT Benutzername}/{VPP ID}/warning

Wenn ein Fehler oder eine Warnung im VPP auftritt, wird eine Nachricht über dieses MQTT-Thema gesendet.

Body:

{
"payload": {
"fields": {
<Feld Wörterbuch>(dict)
},
"target": <VPP ID>(str)
},
"message_type": <Art der Nachricht>(str)
}